A significant trend in modern computing is for commercial organizations to rent or lease processing resources, and especially Web server capacity, from a service provider, rather than using their own in-house systems. Typically the computer systems are owned and operated by the service provider, but are then used to run various applications as required by the commercial organizations.
A major advantage of this approach for the commercial organisation is that it allows them much more flexibility, especially if their system demands are liable to significant fluctuations on a relatively short timescale. This can often be the case, for example, if a special advertising promotion is being run. This will (hopefully) generate an intense peak of on-line inquiries, orders, and so on. The commercial organisation temporarily acquires the additional computing power to cope with this increase by leasing or renting capacity from the service provider.
Usually a service provider will be hosting multiple applications at the same time, on behalf of one or more customers. A typical installation for a service provider has multiple computing systems, each comprising one or more domains. Each domain runs its own operating system and has processing facilities that are largely independent from other domains.
The advantage of a multi-domain structure is that it provides a flexible and scalable architecture. Thus typically a domain runs only one application at a time. In cases of high demand, multiple domains can be assigned to the same application (or more accurately, a separate copy of the same application can be run on different domains) in order to satisfy this demand. Conversely, multiple applications having low priority may in some situations run in parallel on a single domain. This multiple domain approach is also robust, in that if one particular domain fails, then its processing can be reassigned to one or more other domains.
An important consideration in the operation of such systems is ease of reconfiguration. Thus it can be necessary to assign resources (i.e. domains) from one application to another application relatively quickly in order to meet real-time shifts in demand. An example of where this situation might arise is when the demand for a particular task (such as responding to requests for a given Web site) is significantly greater than anticipated (or indeed a lot less than anticipated). This may involve a re-boot of the relevant domain, for example if the new application is to run on a different operating system from the previous application. It will be appreciated that having to perform such re-configuration separately for each individual domain represents a time-consuming task.